RustのOption<T>型
Option<T>型
Some(T)とNone
code:rs
enum Option<T> {
None,
Some(T),
}
不在の可能性を示す
値を取り出す方法が場合分けしかないので、Noneであるときの処理をプログラマに強制させることができる
unwrap()は場合分けを抽象化し、Noneのときはpanicを起こす
機械語レベルではNoneはnull pointerになる
Option型には?は使えない
使いたい場合はok_orなどを使って、Result型に変換してから使う
methods
ok_or<E>(self, err: E)
OptionをResultに変換する
OptionはErrを持っていないので、引数にErrを書いて渡してあげる
and_then(clousre)
Okの中身を取り出して引数のクロージャに渡す
map()に似ており、map()はSomeしか返せないが、これはNoneも返すことができる
ok_or_else()
関数を渡す
参考